﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Telerik.WinControls;

using LIM.forms.uc_CRM_LienHe_ChiTiet;
using LIM.controller;
using LIM.model;

namespace LIM.forms
{
    public partial class radForm_CRM_LienLac_ChiTiet : Telerik.WinControls.UI.RadForm
    {
        public radForm_CRM_LienLac_ChiTiet()
        {
            InitializeComponent();
        }
        public DanhMucLienHeController Controller;
        public int RowID = 0;
        tbl_CRM_NhatKyLienLac NhatKyLienLac = new tbl_CRM_NhatKyLienLac();
        private void radButton_TaoMoiLienHe_Click(object sender, EventArgs e)
        {
            radForm_CRM_LienHe_ChiTiet form = new radForm_CRM_LienHe_ChiTiet();
            //form.MdiParent = this.MdiParent;
            form.ShowDialog();
        }

        private void radForm_CRM_LienLac_ChiTiet_Load(object sender, EventArgs e)
        {
            radDropDownList_NguoiLienHe.DataSource = Controller.LoadLienHe();
            radDropDownList_KhachHang.DataSource = Controller.LoadKhachHang();
            radDropDownList_HinhThuc.DataSource = Controller.LoadHinhThuc();
            BindControls();
        }
        protected void BindControls()
        {
            tbl_CRM_LienHe lienhe = new tbl_CRM_LienHe();
            tbl_CRM_KhachHang KhachHang = new tbl_CRM_KhachHang();
            if (RowID != 0)
            {
                NhatKyLienLac = Controller.LoadNhatKyLienLacByID(RowID);
                lienhe = Controller.LoadLienHeByID(NhatKyLienLac.RowIDLienHe.Value);
                KhachHang = Controller.LoadKhachHangByID(NhatKyLienLac.RowIDKhachHang.Value);
            }
            else { NhatKyLienLac = new tbl_CRM_NhatKyLienLac(); }
            if (NhatKyLienLac.RowIDLienHe != null)
            {
                radDropDownList_NguoiLienHe.SelectedValue = NhatKyLienLac.RowIDLienHe;
            }
            else
            { radDropDownList_NguoiLienHe.SelectedIndex = 1; }
            if (NhatKyLienLac.RowIDKhachHang != null)
            {
                radDropDownList_KhachHang.SelectedValue = NhatKyLienLac.RowIDKhachHang;
            }
            else
            { radDropDownList_KhachHang.SelectedIndex = 1; }
            if (NhatKyLienLac.MaHinhThuc != null)
            {
                radDropDownList_HinhThuc.SelectedValue = NhatKyLienLac.MaHinhThuc;
            }
            else
            { radDropDownList_KhachHang.SelectedIndex = 1; }
            radTextBox_PhuongTien.Text = NhatKyLienLac.PhuongTien;
            radTextBox_NoiDung.Text = NhatKyLienLac.NoiDung;
            radTextBox_KetQua.Text = NhatKyLienLac.NoiDung;
            radTextBox_KetQua.Text = NhatKyLienLac.KetQua;
            radDateTimePicker_ThoiGian.Value = NhatKyLienLac.ThoiGianBatDau != null ? NhatKyLienLac.ThoiGianBatDau.Value : DateTime.Now;
            radTextBox_LuongThoiGianLienLac.Text = NhatKyLienLac.LuongThoiGianLienLac;
            if (lienhe != null)
            {
                radLabel_XungHo.Text = lienhe.XungHo;
                radLabel_SoDienThoai.Text = lienhe.SoDiDong;
                radLabel_Email.Text = lienhe.EmailCaNhan;
            }
            if (KhachHang != null)
            {
                radLabel_DiaChiKhachHang.Text = KhachHang.DiaChi;
            }
            BindControlsNgayCapNhat();
        }
        private void BindControlsNgayCapNhat()
        {
            this.radLabel_NgayTao.Text = "";
            this.radLabel_NgayCapNhat.Text = "";
            this.radLabel_NhanVienTao.Text = "";
            this.radLabel_NhanVienCapNhat.Text = "";

            if (NhatKyLienLac.NgayTao.HasValue)
                this.radLabel_NgayTao.Text = "Ngày tạo: " + NhatKyLienLac.NgayTao.Value.ToString("dd/MM/yyyy hh:mm");
            if (NhatKyLienLac.NgayCapNhat.HasValue)
                this.radLabel_NgayCapNhat.Text = "Ngày cập nhật: " + NhatKyLienLac.NgayCapNhat.Value.ToString("dd/MM/yyyy hh:mm");
            if (!string.IsNullOrEmpty(NhatKyLienLac.NguoiTao))
                this.radLabel_NhanVienTao.Text = "Người tạo: " + NhatKyLienLac.NguoiTao;
            if (!string.IsNullOrEmpty(NhatKyLienLac.NguoiCapNhat))
                this.radLabel_NhanVienCapNhat.Text = "Người cập nhật: " + NhatKyLienLac.NguoiCapNhat;
        }
        private void radDropDownList_NguoiLienHe_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
        {
            if (radDropDownList_NguoiLienHe.SelectedItem.DataBoundItem != null)
            {
                int ID = ((tbl_CRM_LienHe)radDropDownList_NguoiLienHe.SelectedItem.DataBoundItem).RowID;
                tbl_CRM_LienHe lienhe = Controller.LoadLienHeByID(ID);
                if (lienhe != null)
                {
                    radLabel_XungHo.Text = lienhe.XungHo;
                    radLabel_SoDienThoai.Text = lienhe.SoDiDong;
                    radLabel_Email.Text = lienhe.EmailCaNhan;
                }
            }
        }

        private void radDropDownList_KhachHang_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
        {
            if (radDropDownList_KhachHang.SelectedItem.DataBoundItem != null)
            {
                int ID = ((tbl_CRM_KhachHang)radDropDownList_KhachHang.SelectedItem.DataBoundItem).RowID;
                tbl_CRM_KhachHang KhachHang = Controller.LoadKhachHangByID(ID);
                if (KhachHang != null)
                {
                    radLabel_DiaChiKhachHang.Text = KhachHang.DiaChi;
                }
            }
        }

        private void radMenuItem_LuuLai_Click(object sender, EventArgs e)
        {
            if (!IsValidatedSaving())
                return;

            Application.UseWaitCursor = true;
            if (NhatKyLienLac == null)
            {
                NhatKyLienLac = new tbl_CRM_NhatKyLienLac();
            }
            //parentForm.SelectedEntity.MaChiTieu = this.radTextBox_MaChiTieu.Text.Trim();
            if (radDropDownList_NguoiLienHe.SelectedValue != null)
            {
                NhatKyLienLac.RowIDLienHe = int.Parse(radDropDownList_NguoiLienHe.SelectedValue.ToString());
            }
            if (radDropDownList_KhachHang.SelectedValue != null)
            {
                NhatKyLienLac.RowIDKhachHang = int.Parse(radDropDownList_KhachHang.SelectedValue.ToString());
            }
            if (radDropDownList_HinhThuc.SelectedValue != null)
            {
                NhatKyLienLac.MaHinhThuc = radDropDownList_HinhThuc.SelectedValue.ToString();
            }
            NhatKyLienLac.PhuongTien = radTextBox_PhuongTien.Text;
            NhatKyLienLac.NoiDung = radTextBox_NoiDung.Text;
            NhatKyLienLac.KetQua = radTextBox_KetQua.Text;
            NhatKyLienLac.LuongThoiGianLienLac = radTextBox_LuongThoiGianLienLac.Text;
            NhatKyLienLac.ThoiGianBatDau = radDateTimePicker_ThoiGian.Value;

            if (NhatKyLienLac.RowID == 0)
            {
                NhatKyLienLac.NgayTao = Controller.GetCurrentDateTimeFromDatabaseServer();
                NhatKyLienLac.NguoiTao = InitUserInfos.UserName;
            }
            NhatKyLienLac.NgayCapNhat = Controller.GetCurrentDateTimeFromDatabaseServer();
            NhatKyLienLac.NguoiCapNhat = InitUserInfos.UserName;

            string _mess = "";
            int _code = 0;
            if (Controller.SaveObject(NhatKyLienLac, out _mess, out _code))
            {
                RadDesktopAlert_SavingStatus.ShowAlertSaveSuccess("Thông tin Chỉ tiêu", "Đã lưu thành công!");
                RowID = NhatKyLienLac.RowID;
                BindControls();
            }
            else
                MessageBox.Show(_mess);
        }
        private bool IsValidatedSaving()
        {

            if (this.radDropDownList_NguoiLienHe.SelectedValue == null)
            {
                MessageBox.Show("Phải chọn người liên hệ", "Lỗi!!! Dữ liệu không được cập nhật.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (this.radDropDownList_KhachHang.SelectedValue == null)
            {
                MessageBox.Show("Phải chọn khách hàng", "Lỗi!!! Dữ liệu không được cập nhật.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (this.radDropDownList_HinhThuc.SelectedValue == null)
            {
                MessageBox.Show("Phải chọn hình thức liên lạc", "Lỗi!!! Dữ liệu không được cập nhật.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (string.IsNullOrEmpty(this.radTextBox_PhuongTien.Text.Trim()))
            {
                MessageBox.Show("Phương tiên liên lạc không được để trống", "Lỗi!!! Dữ liệu không được cập nhật.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (string.IsNullOrEmpty(this.radTextBox_NoiDung.Text.Trim()))
            {
                MessageBox.Show("Nội dung không được để trống", "Lỗi!!! Dữ liệu không được cập nhật.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (string.IsNullOrEmpty(this.radTextBox_KetQua.Text.Trim()))
            {
                MessageBox.Show("kết quả không được để trống", "Lỗi!!! Dữ liệu không được cập nhật.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            if (string.IsNullOrEmpty(this.radTextBox_LuongThoiGianLienLac.Text.Trim()))
            {
                MessageBox.Show("Lượng thời gian liên lạc được để trống", "Lỗi!!! Dữ liệu không được cập nhật.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            return true;
        }

        private void radMenuItem_XoaBo_Click(object sender, EventArgs e)
        {
            if (!IsValidatedDeleting())
                return;

            if (MessageBox.Show("Nhật ký liên lạc này sẽ bị xóa." + Environment.NewLine + "Xin xác nhận lại việc có tiếp tục xóa hay không?", "Xóa Nhật ký liên lạc", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                string _mess = "";
                if (Controller.DeleteObject(NhatKyLienLac, out _mess))
                {
                    RadDesktopAlert_SavingStatus.ShowAlertDeleteSuccess("Thông tin chỉ tiêu", "Đã xóa thành công chỉ tiêu!");
                    RowID = 0;
                    NhatKyLienLac = new tbl_CRM_NhatKyLienLac();
                    BindControls();
                }
                else
                    MessageBox.Show(_mess);
            }
        }
        private bool IsValidatedDeleting()
        {
            if (NhatKyLienLac == null)
            {
                MessageBox.Show("Cần phải Nhật ký liên lạc cần xóa", "Lỗi!!! Dữ liệu không được cập nhật.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            else if (NhatKyLienLac.RowID == 0)
            {
                MessageBox.Show("Cần phải Nhật ký liên lạc cần xóa", "Lỗi!!! Dữ liệu không được cập nhật.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            return true;
        }
    }
}